#include <initializer_list>//初始值列表
#include <bits/stdc++.h>
using namespace std;
struct  point
{
    int a;
    int b;
};

struct Date
{
    string m_year;
    int m_month;
    int m_day;
};


//列表初始化
//1.对于所有类型（包括整形等自带的类）都可以列表初始化,还可以取消赋值符号
//2.有一个初始值类，许多默认的参数都是编译器给搞成Initiallizer_lsit
void Test_Initialiszer_list()
{
    int a{100};
    int b = {200};
    int array[5]{0};
    int arr[]{1,2,3,4,5};
    point p{1,2};
    Date d{"2022",2,2};//这里是识别成了一个Date类型对象，隐式类型转换去构造拷贝构造了
    auto it = {2022,2,2};//这里实际是C++的Initializer_list,这里就是识别出来，才使得auto没有报错，但是这种Initializer_list只支持一种类型的数据，本质其还是一个类
    vector<int> Nums{1,2,3,4};//这里就是线成了一个Initializer_list来通过这个类，在Vector里面提供接口构造。
    return ;
}
